using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace Unbound.Configuration
{
	public interface IUnbindingOptions
	{
		IUnbindingSourceOptions<T> Source<T>(T request);
		void Prefix(string prefix);
	}

	public interface IUnbindingSourceOptions<T>
	{
		IUnbindingSourceOptions<T> SkipProperty(Expression<Func<T, object>> propertyToSkip);
		void SkipProperties(IEnumerable<Expression<Func<T, object>>> propertiesToSkip);
	}
}